package com.example.demo.service;

import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 用户服务类
 * 提供用户相关的业务逻辑处理
 */
@Service
public class UserService {

    private final UserRepository userRepository;

    /**
     * 构造函数注入UserRepository
     * 
     * @param userRepository 用户数据访问层
     */
    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    /**
     * 用户登录验证
     * 
     * @param username 用户名
     * @param password 密码
     * @return 如果用户名和密码匹配则返回true，否则返回false
     */
    public boolean login(String username, String password) {
        return userRepository.findByUsername(username)
                .map(user -> user.getPassword().equals(password))
                .orElse(false);
    }

    /**
     * 创建新用户
     * 
     * @param user 用户对象
     * @return 保存后的用户对象
     * @throws IllegalArgumentException 如果用户名已存在
     */
    public User createUser(User user) {
        if (userRepository.existsByUsername(user.getUsername())) {
            throw new IllegalArgumentException("用户名已存在");
        }
        return userRepository.save(user);
    }
}